RS40B - uživatelský manuál


2.6.5 - Programy

Programy obsahují VAL3 intrukce, které mají být vykonány. Každá aplikace obsahuje hned po vytvoření programy Start() a Stop(). Program Start(), je volán při spouštění aplikace a program Stop() je volán pro zastavení aplikace. Tyto dva základní programy nemohou být smazány ani přejmenovány a nemají žádne parametry.

Vedle dvou základních programů, je možné vytvořit i vlastní programy, které můžete volat kdekoliv z programu Start(), ale i z jakéhokoliv jiného programu. Jelikož jsou programy i Start() a Stop(), lze je také libovolně volat.

Programy jsou používány ke zjednodušení struktury aplikací, usnadňují programování, údržbu a čitelnost aplikace. Počet instrukcí programu je omezen pouze velikostí volné paměti systému. Každý program může obsahovat vlastní lokální proměnné a parametry. Jejich počet je omezen pouze velikostí zásobníku aplikace.

Pro volání programu se používá příkaz call, za kterým následuje název programu a závorky, do kterých se zadávají parametry, ktré chceta programu předat. Pokud program neobsahuje žádné parametry, je nezbytné uvést prázdné závorky.

Příklad

Program sqr(num x)

lokální proměnné:
num pom

01:begin
02:  pom=x
03:  x=x*x
04:  put("Mocnina čísla ")
05:  put(pom)
06:  put("se rovná ")
07:  put(x)
08:end


Program Start()

lokální proměnné:
num cislo

09:begin
10:  putln("Zadejte číslo, které chcete umocnit: ")
11:  get(cislo)
12:  call sqr(num)
13:end

V první části příkladu, je zobrazen program sqr(num x), který má numerický parametr x, jak je vidět v závorce. Následuje výpis lokálních proměnných pro tento program. Proměnná pom, je zde použita pro uchování původní hodnoty proměnné x, jelikož ta poté bude přepsána její druhou mocninou. To je provedeno na řádku 3, kde je původní hodnota x přepsána hodnotou x*x, tedy x na druhou. Následuje výpis proměnné na displej. Pro vykonání tohoto programu je však nutné tento program nejprve zavolat. To je možné z programu Start(), jelikož ten je volán automaticky po spuštění aplikace. V programu Start() jsme tedy nejprve zjistily, jaké číslo chce uživatel umocnit a poté na řádku 12 je samotná instrukce pro volání programu.

Parametry volané odkazem

V prvním příkladu, který jsme si uvedly, je parametr předáván jako číselná hodnota. To znamená, že hodnota proměnné, která byla zadána programu jako parametr (proměnná "cislo"), bude předána programu sqr(), který jej uloží do vlastní lokální proměnné, avšak samotná proměnná v programu Start() zůstane nezměněna. V některých případech je však lepší, či dokonce nutné aby program tuto proměnnou nějakým způsobem změnil. To lze jednoduše řešit pomocí parametru volaného odkazem. Tedy programu není předávána hodnota proměnné, ale adresa v paměti, na které je proměnná uložena. Program pak nepracuje s vlastní proměnnou, ale s proměnou, která mu byla předána odkazem. Pokud vám to stále není jasné, následující následující příklad by vám to měl objasnit.

Program zmen_prvek(num& p, num x)

01:begin
02:  p[x]=10
03:  putln(p[x])
04:end


Program Start()

lokální proměnné:
num pole[10]
num pozice

05:begin
06:  pozice=5
07:  call zmen_prvek(pole, pozice)
08:  putln(pole[pozice])
09:end

Zde jsme si ukázali příklad, který změní hodnotu pole pomocí předání parametru odkazem. Program zmen_prvek(num& p, num x) má dva parametry, první je pole předávané odkazem a druhý je pozice prvku, který bude v poli změněn. V hlavním programu jsme tento program zavolaly a následně vypsaly na obarzovku hodnotu prvku na dané pozici, aby jsme si ověřily, zda bylo pole opravdu změněno i v programu Start(). Na obrazovce tedy bude dvakrát vypsáno číslo 10, které jsme do pole umístily.